<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <artifactId>jsr330activator.testbundles</artifactId>
  <groupId>no.steria.osgi.jsr330activator</groupId>
  <version>1.1.1-SNAPSHOT</version>
 </parent>

 <artifactId>jsr330activator.testbundle2</artifactId>
 <packaging>bundle</packaging>

 <name>jsr330activator.testbundle2 OSGi Bundle</name>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.osgi</groupId>
   <artifactId>org.osgi.core</artifactId>
   <version>4.3.0</version>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>no.steria.osgi.jsr330activator</groupId>
   <artifactId>jsr330activator.implementation</artifactId>
   <version>${project.version}</version>
  </dependency>
  <dependency>
   <groupId>org.apache.servicemix.bundles</groupId>
   <artifactId>org.apache.servicemix.bundles.javax-inject</artifactId>
   <version>1_2</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
     <instructions>
      <Bundle-Activator>no.steria.osgi.jsr330activator.Jsr330Activator</Bundle-Activator>
      <Export-Package>no.steria.osgi.jsr330activator.testbundle2</Export-Package>
      <Embed-Dependency>jsr330activator.implementation;inline=true</Embed-Dependency>
     </instructions>
    </configuration>
   </plugin>
  </plugins>
 </build>

 <profiles>
  <profile>
   <id>build-for-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- To include a shell:
         <dependency>
         <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.gogo.shell</artifactId>
         <version>0.10.0</version>
         </dependency>
    -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <executions>
       <execution>
        <id>compile</id>
        <phase>package</phase>
        <goals>
         <goal>run</goal>
        </goals>
        <configuration>
         <target>
          <pathconvert property="plugins.jars" pathsep="${path.separator}">
           <path refid="maven.runtime.classpath" />
           <map from="${project.build.directory}${file.separator}classes" to="" />
          </pathconvert>
          <pathconvert pathsep=" " property="bundles">
           <path path="${plugins.jars}" />
           <mapper>
            <chainedmapper>
             <flattenmapper />
             <globmapper from="*" to="file:modules/*" casesensitive="no" />
            </chainedmapper>
           </mapper>
          </pathconvert>
          <propertyfile file="${project.build.directory}/config.properties">
           <entry key="felix.auto.start" value="${bundles} file:modules/${project.build.finalName}.jar" />
           <entry key="org.osgi.framework.bootdelegation" value="*" />
          </propertyfile>
          <copy file="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}" tofile="${project.build.directory}/felix.jar" />
         </target>
        </configuration>
       </execution>
      </executions>
     </plugin>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.3</version>
      <executions>
       <execution>
        <id>create-executable-jar</id>
        <phase>package</phase>
        <goals>
         <goal>single</goal>
        </goals>
        <configuration>
         <descriptors>
          <descriptor>${basedir}/src/main/assembly/felix.xml</descriptor>
         </descriptors>
         <finalName>${project.build.finalName}</finalName>
        </configuration>
       </execution>
      </executions>
     </plugin>
    </plugins>
   </build>
  </profile>
  <profile>
   <id>run-on-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- org.apache.felix:org.apache.felix.gogo.shell:0.6.1 useless from Maven since stdin is swallowed -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <configuration>
       <target>
        <property name="vm.args" value="" />
        <pathconvert property="plugins.jars" pathsep="${path.separator}">
         <path refid="maven.runtime.classpath" />
         <map from="${project.build.directory}${file.separator}classes" to="" />
        </pathconvert>
        <makeurl property="urls" separator=" ">
         <path path="${plugins.jars}" />
         <path location="${project.build.directory}/${project.build.finalName}.jar" />
        </makeurl>
        <propertyfile file="${project.build.directory}/run.properties">
         <entry key="felix.auto.start" value="${urls}" />
         <entry key="felix.auto.deploy.action" value="uninstall,install,update,start" />
         <entry key="org.osgi.framework.storage" value="${project.build.directory}${file.separator}felix-cache" />
         <entry key="org.osgi.framework.bootdelegation" value="*" />
        </propertyfile>
        <makeurl property="run.properties.url" file="${project.build.directory}/run.properties" />
        <java fork="true" jar="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}">
         <sysproperty key="felix.config.properties" value="${run.properties.url}" />
         <jvmarg line="${vm.args}" />
        </java>
       </target>
      </configuration>
     </plugin>
    </plugins>
   </build>
  </profile>
 </profiles>
 <description>An OSGi bundle used in integration tests.  This bundle exports the package containing the service definition for HelloService2 and embeds the Jsr330BundleActivator and imports javax.inject from the OSGi runtime and uses the Jsr330BundleActivator to find a provider for HelloService2 and expose the service to listeners.</description>
</project>
